package com.zhuanzhuan.hero.user.facade;

import com.bj58.spat.scf.server.contract.annotation.ServiceContract;
import com.bj58.youpin.common.rpc.result.Result;
import com.bj58.zhuanzhuan.zzentry.common.service.entity.ServiceHeaderEntity;
import com.bj58.zhuanzhuan.zzentry.common.service.entity.ZZOpenScfBaseResult;
import com.bj58.zhuanzhuan.zzentry.common.service.model.openEntry.ZZHeader;
import com.zhuanzhuan.hero.user.dto.reliable.QueryReliableListDTO;
import com.zhuanzhuan.hero.user.vo.PageResultWrapper;
import com.zhuanzhuan.hero.user.vo.UserListItemVO;
import com.zhuanzhuan.hero.user.vo.label.CertificationQualifiedVO;
import com.zhuanzhuan.hero.user.vo.reliable.CertifyReliableDTO;

/**
 * @ClassName IReliableFacade
 * @Description
 * @Author hanjunjun
 * @Date 2024/6/20 11:44
 */
@ServiceContract
public interface IReliableFacade {

    /**
     * 前端-靠谱-分页查询靠谱/不靠谱列表
     *
     * @param header
     * @param queryReliableListDTO
     * @return com.zhaunzhuan.hero.user.vo.reliable.UserReliableVO
     * @author  hanjunjun
     * @date 2024/6/20
     **/
    ZZOpenScfBaseResult<PageResultWrapper<UserListItemVO>> pageReliables(@ZZHeader ServiceHeaderEntity header,
        QueryReliableListDTO queryReliableListDTO);

    /**
     * 是否有资格认证
     *
     * @param header
     * @param certifyReliableDTO
     * @return com.bj58.zhuanzhuan.zzentry.common.service.entity.ZZOpenScfBaseResult<com.zhuanzhuan.hero.user.vo.label.CertificationQualifiedVO>
     * @author  hanjunjun
     * @date 2024/7/24
     **/
    ZZOpenScfBaseResult<CertificationQualifiedVO> hasCertifyReliableQualify(@ZZHeader ServiceHeaderEntity header,
        CertifyReliableDTO certifyReliableDTO);

    /**
     * 前端-靠谱-认证靠谱/不靠谱
     *
     * @param header
     * @param certifyReliableDTO
     * @return com.bj58.zhuanzhuan.zzentry.common.service.entity.ZZOpenScfBaseResult<java.lang.Void>
     * @author  hanjunjun
     * @date 2024/6/20
     **/
    ZZOpenScfBaseResult<Boolean> certifyReliable(@ZZHeader ServiceHeaderEntity header,
        CertifyReliableDTO certifyReliableDTO);

    /**
     * 前端-靠谱-撤销靠谱/不靠谱
     *
     * @param header
     * @param certifyReliableDTO
     * @return com.bj58.zhuanzhuan.zzentry.common.service.entity.ZZOpenScfBaseResult<java.lang.Void>
     * @author  hanjunjun
     * @date 2024/6/20
     **/
    ZZOpenScfBaseResult<Boolean> cancelReliable(@ZZHeader ServiceHeaderEntity header,
        CertifyReliableDTO certifyReliableDTO);

    /**
     * 后端-查询给自己认证靠谱的用户列表
     *
     * @param uid
     * @return com.bj58.youpin.common.rpc.result.Result<java.util.List<com.zhuanzhuan.hero.user.vo.UserItemBriefVO>>
     * @author  hanjunjun
     * @date 2024/7/6
     **/
    Result<PageResultWrapper<UserListItemVO>> queryReliableUsers(Long uid, Integer pageNum, Integer pageSize);

}
